๊ฒฌ๊ณ ํ ์ฑ๋ฅ ํ๋ ์์ํฌ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐํํ์ธ์. ๋ค์ํ ๊ธ๋ก๋ฒ ํ๋ก์ ํธ์์ ์๋์ ํจ์จ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ต์ ํ ์ธํ๋ผ ๊ตฌ์ถ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ํ๋ ์์ํฌ: ์ต์ ํ ์ธํ๋ผ ๊ตฌํ
์ค๋๋ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๋์งํธ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋๋ฆฌ๊ฒ ๋ก๋๋๊ฑฐ๋ ๋นํจ์จ์ ์ธ ์น์ฌ์ดํธ๋ ๋์ ์ดํ๋ฅ , ์ ํ ์์ค, ๊ทธ๋ฆฌ๊ณ ์ข์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋๋ ๊ฒฌ๊ณ ํ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ํ๋ ์์ํฌ๋ฅผ ๊ตฌํํ๋ ๊ณผ์ ์ ์๋ดํ๋ฉฐ, ๋ค์ํ ๊ธ๋ก๋ฒ ํ๋ก์ ํธ์ ์ ์ฉํ ์ ์๋ ์ต์ ํ ์ธํ๋ผ ๊ตฌ์ถ์ ์ค์ ์ ๋ก๋๋ค. ํต์ฌ ๊ฐ๋ , ๋ชจ๋ฒ ์ฌ๋ก, ๊ทธ๋ฆฌ๊ณ ์ค์ ์์ ๋ฅผ ํตํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ ์ฌ์ฉ์์ ์์น๋ ๊ธฐ๊ธฐ์ ๊ด๊ณ์์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ ํ๊ตฌํ ๊ฒ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ์ ์ค์์ฑ ์ดํดํ๊ธฐ
๊ตฌํ ์ธ๋ถ ์ฌํญ์ ๋ํด ์์๋ณด๊ธฐ ์ ์, ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ์ด ์ ๊ทธ๋ ๊ฒ ์ค์ํ์ง๋ถํฐ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ๋ฌ ์์ธ์ด ๊ธฐ์ฌํฉ๋๋ค:
- ์ฌ์ฉ์ ๊ฒฝํ: ๋ฐ์์ด ๋น ๋ฅด๊ณ ์ ์ํ๊ฒ ๋ก๋๋๋ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์๋ฅผ ๋ ํ๋ณตํ๊ฒ ๋ง๋ญ๋๋ค. ์งง์ ์ง์ค๋ ฅ์ ์๋์ ๋ชจ๋ ๋ฐ๋ฆฌ์ด๊ฐ ์ค์ํฉ๋๋ค. ๋๋ฆฐ ์ฑ๋ฅ์ ์ข์ ๊ฐ์ ์ ๋ฐํ๊ณ ์ฌ์ฉ์๋ฅผ ๋ ๋๊ฒ ํ ์ ์์ต๋๋ค.
- SEO (๊ฒ์ ์์ง ์ต์ ํ): ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ํ์ด์ง ์๋๋ฅผ ์ค์ํ ์์ ๊ฒฐ์ ์์ธ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค. ์ต์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์น์ฌ์ดํธ๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ์์ ๋ ๋์ ์์๋ฅผ ์ฐจ์งํ ๊ฐ๋ฅ์ฑ์ ๋์ฌ ์ ๊ธฐ์ ์ธ ํธ๋ํฝ์ ์ฆ๊ฐ์ํต๋๋ค.
- ์ ํ์จ: ๋ ๋น ๋ฅธ ์น์ฌ์ดํธ๋ ์ข ์ข ๋ ๋์ ์ ํ์จ๋ก ์ด์ด์ง๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฑฐ๋๋ฅผ ์๋ฃํ๊ฑฐ๋ ์ฌ์ดํธ์ ์ํธ์์ฉํ๋ ๋ฐ ์ง์ฐ์ ๊ฒช์ผ๋ฉด ํฌ๊ธฐํ ๊ฐ๋ฅ์ฑ์ด ๋ ๋์ต๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฐ์ ์๋: ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ ๋ณด๊ธ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ด๋ฌํ ๊ธฐ๊ธฐ์์์ ์ฑ๋ฅ ์ต์ ํ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ๋ ๋ฐ์คํฌํฑ ๋คํธ์ํฌ๋ณด๋ค ๋๋ฆฌ๊ณ ๋ ์์ ์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ๊ธ๋ก๋ฒ ๋๋ฌ ๋ฒ์: ์น์ฌ์ดํธ๋ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๋ ๊ธฐ๊ธฐ์ ๊ด๊ณ์์ด ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ผ ํฉ๋๋ค. ํนํ ๋ถ๋ฏธ, ์ ๋ฝ, ์์์ ๋ฑ ๋ค๋ฅธ ๋๋ฅ์ ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ ๋ ์ต์ ํ๊ฐ ์ค์ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ํ๋ ์์ํฌ์ ํต์ฌ ๊ตฌ์ฑ ์์
ํฌ๊ด์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ํ๋ ์์ํฌ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณ, ๋ถ์ ๋ฐ ํด๊ฒฐํ๊ธฐ ์ํด ํจ๊ป ์๋ํ๋ ์ฌ๋ฌ ํต์ฌ ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ ์ง์์ ์ผ๋ก ์ฑ๋ฅ์ ํ๊ฐํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํ ์ธํ๋ผ๋ฅผ ํ์ฑํฉ๋๋ค:
1. ์ฝ๋ ํ๋กํ์ผ๋ง ๋ฐ ๋ถ์
์ฝ๋ ํ๋กํ์ผ๋ง์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ธฐ ์ํด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ ์คํํ๋ ๋ฐ ์์๋๋ ์๊ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์ธก์ ํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์๋น๋, ์ฝ๋ ์คํ ์๊ฐ์ด ํฌํจ๋ฉ๋๋ค. ์ธ๊ธฐ ์๋ ํ๋กํ์ผ๋ง ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ: ๋๋ถ๋ถ์ ์ต์ ๋ธ๋ผ์ฐ์ (Chrome, Firefox, Safari, Edge)๋ ์ฑ๋ฅ ํ๋กํ์ผ๋ง ๊ธฐ๋ฅ์ ํฌํจํ ๋ด์ฅ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ฑ๋ฅ ๋๋ ํ์๋ผ์ธ ํจ๋์ ์ฌ์ฉํ์ฌ ์ฝ๋ ์คํ์ ๊ธฐ๋กํ๊ณ ๋ถ์ํ์ธ์.
- Node.js ํ๋กํ์ผ๋ฌ: ์๋ฒ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ(Node.js)๋ก ์์ ํ๋ ๊ฒฝ์ฐ, Node.js Inspector๋ `v8-profiler`์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋ํํฐ ํ๋กํ์ผ๋ง ๋๊ตฌ: ํนํ ํ๋ก๋์ ํ๊ฒฝ์์ ๋ ํฌ๊ด์ ์ธ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ถ์์ ์ํด New Relic, Sentry ๋๋ Datadog๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์. ์ด๋ฌํ ๋๊ตฌ๋ ํธ๋์ญ์ ์ถ์ , ์ค๋ฅ ๋ชจ๋ํฐ๋ง, ์ค์๊ฐ ๋์๋ณด๋๋ฅผ ํฌํจํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ๋ํ ์์ธํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
์์: Chrome ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ํญ์ผ๋ก ์ด๋ํ ํ '๊ธฐ๋ก'์ ํด๋ฆญํ๊ณ ์น์ฌ์ดํธ์ ์ํธ์์ฉํ ๋ค์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒํ ํ์ฌ ์ฑ๋ฅ ํ๋กํ์ ๊ธฐ๋กํ ์ ์์ต๋๋ค. ์ด ๋๊ตฌ๋ ๊ฐ์ฅ ๋ง์ CPU ์๊ฐ์ ์๋นํ๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ผ์ผํค๋ ํจ์๋ฅผ ์๋ณํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ํ๋ฅผ ์ํ ํน์ ์์ญ์ ๋ชฉํ๋ก ์ผ์ ์ ์์ต๋๋ค.
2. ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ
์ง์์ ์ธ ๋ชจ๋ํฐ๋ง์ ์ฑ๋ฅ ์ ํ๋ฅผ ์๋ณํ๊ณ ์ต์ ํ๊ฐ ํจ๊ณผ์ ์ธ์ง ํ์ธํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ๊ตฌํํ๋ ค๋ฉด ํต์ฌ ์งํ๋ฅผ ์ถ์ ํ๊ณ ์ฑ๋ฅ์ด ์ ํ๋ ๋ ์๋ฆผ์ ๋ฐ๋๋ก ์ค์ ํด์ผ ํฉ๋๋ค. ์ฃผ์ ์ฑ๋ฅ ์งํ(KPI)๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ต์ด ์ฝํ ์ธ ํ ํ์ธํธ(FCP): ๋ธ๋ผ์ฐ์ ๊ฐ DOM์์ ์ฒซ ๋ฒ์งธ ์ฝํ ์ธ ์กฐ๊ฐ์ ๋ ๋๋งํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋๋ค.
- ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ(LCP): ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ์์(์ด๋ฏธ์ง, ํ ์คํธ ๋ธ๋ก ๋ฑ)๊ฐ ํ์๋๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋๋ค.
- ์ํธ์์ฉ๊น์ง์ ์๊ฐ(TTI): ํ์ด์ง๊ฐ ์์ ํ ์ํธ์์ฉ ๊ฐ๋ฅํด์ง๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋๋ค.
- ์ด ์ฐจ๋จ ์๊ฐ(TBT): ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ฐจ๋จ๋์ด ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐฉํดํ๋ ์ด ์๊ฐ์ ๋๋ค.
- ๋์ ๋ ์ด์์ ์ด๋(CLS): ์์์น ๋ชปํ ๋ ์ด์์ ์ด๋์ ์ ๋ํํ์ฌ ํ์ด์ง์ ์๊ฐ์ ์์ ์ฑ์ ์ธก์ ํฉ๋๋ค.
Search Console์ ๊ตฌ๊ธ ์ฝ์ด ์น ๋ฐ์ดํ ๋ณด๊ณ ์์ WebPageTest์ ๊ฐ์ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์งํ๋ฅผ ๋ชจ๋ํฐ๋งํ์ธ์. WebPageTest๋ ๋ค์ํ ๊ธฐ๊ธฐ ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์์์ ํ์ด์ง ๋ก๋ ์ฑ๋ฅ์ ๋ํ ์์ธํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์งํ๊ฐ ํ์ฉ ๊ฐ๋ฅํ ์๊ณ๊ฐ ์๋๋ก ๋จ์ด์ง ๋ ์๋ฆผ์ ๋ฐ๋๋ก ์ค์ ํ์ธ์. ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๋ฐ ๋์๋ณด๋๋ฅผ ์ํด New Relic, Sentry ๋๋ Datadog๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์.
์์: Sentry์ ๊ฐ์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ์ฌ ๋๋ฆฐ ํ์ด์ง ๋ก๋ ์๊ฐ์ ์ถ์ ํฉ๋๋ค. LCP๊ฐ 2.5์ด๋ฅผ ์ด๊ณผํ๋ฉด ์๋ฆผ์ ํธ๋ฆฌ๊ฑฐํ๋ ์ฌ์ฉ์ ์ง์ ๊ท์น์ ๋ง๋ญ๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์ฌ์ ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
3. ์ฝ๋ ์ต์ ํ ๊ธฐ๋ฒ
ํ๋กํ์ผ๋ง ๋ฐ ๋ชจ๋ํฐ๋ง์ ํตํด ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ค๋ฉด, ๋ค์ ๋จ๊ณ๋ ์ต์ ํ ๊ธฐ๋ฒ์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฒ์ด ์์ต๋๋ค. ์ฌ์ฉํ๋ ํน์ ๊ธฐ๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ์ ์๋ณ๋ ๋ฌธ์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ์ต์ํ(Minification): ๋ถํ์ํ ๋ฌธ์(๊ณต๋ฐฑ, ์ฃผ์)๋ฅผ ์ ๊ฑฐํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ๋๊ตฌ๋ก๋ UglifyJS, Terser, Babel(์ ์ ํ ํ๋ฌ๊ทธ์ธ๊ณผ ํจ๊ป)์ด ์์ต๋๋ค.
- ์์ถ(Gzip/Brotli): ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๊ธฐ ์ ์ ์์ถํฉ๋๋ค. ์๋ฒ๋ ์ ์ก ์ ์ ํ์ผ์ ์์ถํ๊ณ ๋ธ๋ผ์ฐ์ ๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์์ถ์ ํด์ ํฉ๋๋ค. ์ด๋ ์ ์กํด์ผ ํ ๋ฐ์ดํฐ์ ์์ ํฌ๊ฒ ์ค์ ๋๋ค. ๋๋ถ๋ถ์ ์น ์๋ฒ๋ Gzip ๋ฐ Brotli ์์ถ์ ์ง์ํฉ๋๋ค.
- ๋ฒ๋ค๋ง(Bundling): ์ฌ๋ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋จ์ผ ํ์ผ๋ก ๊ฒฐํฉํ์ฌ HTTP ์์ฒญ ์๋ฅผ ์ค์ ๋๋ค. Webpack, Parcel, Rollup๊ณผ ๊ฐ์ ๋๊ตฌ๋ ๋ฒ๋ค๋ง ๋ฐ ๊ธฐํ ์ต์ ํ ๊ธฐ๋ฒ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
- ์ฝ๋ ๋ถํ (Code Splitting): ์ฝ๋๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋ถํ ํ๊ณ ํ์์ ๋ฐ๋ผ ๋ก๋ํฉ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ทฐ์ ํ์ํ ์ฝ๋๋ง ๋ก๋ํ์ฌ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ์ค์ ๋๋ค. Webpack ๋ฐ Parcel๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์ฝ๋ ๋ถํ ์ ์ง์ํฉ๋๋ค.
- ์ง์ฐ ๋ก๋ฉ(Lazy Loading): ์ค์ํ์ง ์์ ๋ฆฌ์์ค(์ด๋ฏธ์ง, ์คํฌ๋ฆฝํธ)์ ๋ก๋๋ฅผ ํ์ํ ๋๊น์ง ์ง์ฐ์ํต๋๋ค. ์ด๋ ์น์ฌ์ดํธ์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๋๋ฐ์ด์ฑ ๋ฐ ์ค๋กํ๋ง(Debouncing and Throttling): ํนํ ์ฌ์ฉ์ ์ด๋ฒคํธ(์: ์คํฌ๋กค, ํฌ๊ธฐ ์กฐ์ )์ ๋ํ ์๋ต์ผ๋ก ํจ์ ํธ์ถ ๋น๋๋ฅผ ์ ํํ๊ธฐ ์ํด ๋๋ฐ์ด์ฑ ๋ฐ ์ค๋กํ๋ง ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- ํจ์จ์ ์ธ DOM ์กฐ์: DOM ์กฐ์์ ์ข ์ข ์ฑ๋ฅ ์ง์ฝ์ ์ด๋ฏ๋ก ์ต์ํํฉ๋๋ค. ๋ฌธ์ ์กฐ๊ฐ(document fragments) ๋ฐ ์ผ๊ด ์ ๋ฐ์ดํธ์ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฆฌํ๋ก์ฐ ๋ฐ ๋ฆฌํ์ธํธ ์๋ฅผ ์ค์ ๋๋ค.
- ์ต์ ํ๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ: ๋ถํ์ํ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํผํ๊ณ ์ด๋ฒคํธ ์์์ ์ฌ์ฉํ์ฌ ์์์ ์ฐ๊ฒฐ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์๋ฅผ ์ค์ ๋๋ค.
- ์บ์ฑ(Caching): ๋ธ๋ผ์ฐ์ ์บ์ฑ๊ณผ ์๋ฒ ์ฌ์ด๋ ์บ์ฑ์ ํ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ๋ค์ ๋ค์ด๋ก๋ํ ํ์์ฑ์ ์ค์ ๋๋ค. ๊ณ ๊ธ ์บ์ฑ ์ ๋ต์ ์ํด ์๋น์ค ์์ปค(Service Workers) ์ฌ์ฉ์ ๊ณ ๋ คํด๋ณด์ธ์.
- ๋ธ๋กํน ์์ ํผํ๊ธฐ: ์ค๋ ์คํ๋๋ ์์ ์ ๋น๋๊ธฐ์ ์ผ๋ก(์: `setTimeout`, `setInterval`, Promises ๋๋ `async/await` ์ฌ์ฉ) ์คํํ์ฌ ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ๊ณ UI ์ ์ง๋ฅผ ์ ๋ฐํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋คํธ์ํฌ ์์ฒญ ์ต์ ํ: HTTP ์์ฒญ์ ์์ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ๋ธ๋ผ์ฐ์ ์ ์๋ฒ์์ ์ง์ํ๋ ๊ฒฝ์ฐ HTTP/2 ๋๋ HTTP/3๊ณผ ๊ฐ์ ๊ธฐ์ ์ ํ์ฉํ์ฌ ๋ค์คํ(๋จ์ผ ์ฐ๊ฒฐ์ ํตํ ์ฌ๋ฌ ์์ฒญ)๋ฅผ ํ์ฉํฉ๋๋ค.
์์: Webpack๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ต์ํ, ๋ฒ๋ค๋ง ๋ฐ ์ต์ ํํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํด ๋ณ๋์ ๋ฒ๋ค์ ์์ฑํ๋๋ก ์ฝ๋ ๋ถํ ์ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค. ์น ์๋ฒ์์ Gzip ๋๋ Brotli ์์ถ์ ๊ตฌ์ฑํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๊ธฐ ์ ์ ์์ถ๋๋๋ก ํฉ๋๋ค. `loading="lazy"` ์์ฑ ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง์ ์ง์ฐ ๋ก๋ฉ์ ๊ตฌํํฉ๋๋ค.
4. ํ ์คํธ ๋ฐ ์ฑ๋ฅ ์ ํ ๋ฐฉ์ง
์ฒ ์ ํ ํ ์คํธ๋ ์ต์ ํ๊ฐ ์ฑ๋ฅ ์ ํ(์๋ก์ด ์ฑ๋ฅ ๋ฌธ์ )๋ฅผ ์ ๋ฐํ์ง ์๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๊ฒ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ฑ๋ฅ ํ ์คํธ: ํต์ฌ ์งํ๋ฅผ ์ธก์ ํ๋ ์๋ํ๋ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ๋ง๋ญ๋๋ค. WebPageTest ๋ฐ Lighthouse์ ๊ฐ์ ๋๊ตฌ๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉํ์ฌ ๊ฐ ์ฝ๋ ๋ณ๊ฒฝ ํ ์๋์ผ๋ก ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- ํ๊ท ํ ์คํธ: ์ฑ๋ฅ ๊ฐ์ ์ด ์ ์ง๋๊ณ ์๋ก์ด ์ฝ๋๊ฐ ์๋์น ์๊ฒ ์ฑ๋ฅ์ ์ ํ์ํค์ง ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ธฐ์ ์ผ๋ก ํ ์คํธํฉ๋๋ค.
- ๋ถํ ํ ์คํธ: ๋์ ์ฌ์ฉ์ ๋ถํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์คํธ๋ ์ค ์ํฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํ ์คํธํฉ๋๋ค. JMeter ๋ฐ LoadView์ ๊ฐ์ ๋๊ตฌ๋ ์๋ง์ ์ฌ์ฉ์์ ๋ถํ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์์ฉ ํ ์คํธ(UAT): ์ค์ ์ฌ์ฉ์๋ฅผ ์ฑ๋ฅ ํ ์คํธ์ ์ฐธ์ฌ์ํต๋๋ค. ๋ค์ํ ์์น์ ์ฌ์ฉ์๋ก๋ถํฐ ํผ๋๋ฐฑ์ ์์งํ์ฌ ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์๋ํ๋์ง ํ์ธํฉ๋๋ค. ํนํ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ง์ญ์ ์ฌ์ฉ์์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ธ์.
์์: CI/CD ํ์ดํ๋ผ์ธ์ Lighthouse๋ฅผ ํตํฉํ์ฌ ๊ฐ ํ ๋ฆฌํ์คํธ์ ๋ํด ์๋์ผ๋ก ์ฑ๋ฅ ๊ฐ์ฌ๋ฅผ ์คํํฉ๋๋ค. ์ด๋ ์ฑ๋ฅ ๋ณ๊ฒฝ์ ๋ํ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค. ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ(์: New Relic)์ ์๋ฆผ์ ์ค์ ํ์ฌ ์ ์ฝ๋ ๋ฐฐํฌ ํ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ ํ๋ ๊ฒฝ์ฐ ์๋ฆผ์ ๋ฐ๋๋ก ํฉ๋๋ค. ์ฑ๋ฅ ๊ฐ์ ์ด ์๊ฐ์ด ์ง๋๋ ์ ์ง๋๋๋ก ํ๊ท ํ ์คํธ๋ฅผ ์๋ํํฉ๋๋ค.
5. ์ง์์ ์ธ ๊ฐ์ ๋ฐ ๋ฐ๋ณต
์ฑ๋ฅ ์ต์ ํ๋ ์ผํ์ฑ ํด๊ฒฐ์ฑ ์ด ์๋ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ์ฑ๋ฅ ์งํ๋ฅผ ๊ฒํ ํ๊ณ ์ฝ๋๋ฅผ ํ๋กํ์ผ๋งํ๋ฉฐ ์ต์ ํ ์ ๋ต์ ๋ฐ๋ณตํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ํ์์ ๋ฐ๋ผ ์กฐ์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ์ ๊ธฐ ๊ฐ์ฌ: ์๋ก์ด ๋ณ๋ชฉ ํ์๊ณผ ๊ฐ์ ์์ญ์ ์๋ณํ๊ธฐ ์ํด ์ฃผ๊ธฐ์ ์ธ ์ฑ๋ฅ ๊ฐ์ฌ๋ฅผ ์ํํฉ๋๋ค. Lighthouse, PageSpeed Insights, WebPageTest์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ฐ์ฌ๋ฅผ ์ํํฉ๋๋ค.
- ์ต์ ์ ๋ณด ์ ์ง: ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ๋ธ๋ผ์ฐ์ ์ต์ ํ๊ฐ ์ง์์ ์ผ๋ก ์ถ์๋๋ฏ๋ก ์ ๋ณด๋ฅผ ์ป๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ์ฐ์ ์์ ์ค์ : ๊ฐ์ฅ ์ํฅ๋ ฅ ์๋ ์ต์ ํ์ ๋ ธ๋ ฅ์ ์ง์คํฉ๋๋ค. ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ ๋ฌธ์ (์: LCP, TTI)๋ถํฐ ์์ํฉ๋๋ค.
- ํผ๋๋ฐฑ ์์ง: ์ฑ๋ฅ์ ๋ํ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ์์งํ๊ณ ๋ชจ๋ ์ฐ๋ ค ์ฌํญ์ ํด๊ฒฐํฉ๋๋ค. ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ์ค์ ์ฑ๋ฅ ๋ฌธ์ ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์์: ๋งค์ ์ฑ๋ฅ ๊ฐ์ฌ๋ฅผ ์์ฝํ์ฌ ์น์ฌ์ดํธ์ ์ฑ๋ฅ ์งํ๋ฅผ ๊ฒํ ํ๊ณ ๊ฐ์ ์์ญ์ ์๋ณํฉ๋๋ค. ์ ๊ณ ๋ธ๋ก๊ทธ๋ฅผ ๊ตฌ๋ ํ๊ณ , ์ปจํผ๋ฐ์ค์ ์ฐธ์ํ๊ณ , ์์ ๋ฏธ๋์ด์์ ์ฃผ์ ๊ฐ๋ฐ์๋ฅผ ํ๋ก์ฐํ์ฌ ์ต์ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค. ์ง์์ ์ผ๋ก ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ์์งํ๊ณ ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ํ๋ ๋ชจ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
ํ๋ ์์ํฌ ๊ตฌํ: ๋จ๊ณ๋ณ ๊ฐ์ด๋
์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ต์ ํ ํ๋ ์์ํฌ๋ฅผ ๊ตฌํํ๋ ๋จ๊ณ๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค:
1. ์ฑ๋ฅ ๋ชฉํ ๋ฐ KPI ์ ์
- ๋ช ํํ ์ฑ๋ฅ ๋ชฉํ๋ฅผ ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, LCP 2.5์ด ๋ฏธ๋ง, TTI 5์ด ๋ฏธ๋ง, CLS 0.1 ์ดํ๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค.
- KPI(FCP, LCP, TTI, TBT, CLS ๋ฑ)๋ฅผ ์ ํํฉ๋๋ค.
- ์ฑ๋ฅ ๋ชฉํ์ KPI๋ฅผ ๋ฌธ์ํํฉ๋๋ค. ํ์ ๋ชจ๋ ๊ตฌ์ฑ์์ด ์ด๋ฅผ ์ดํดํ๋๋ก ํฉ๋๋ค.
2. ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์ค์
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ(์: Google Analytics, New Relic, Sentry, Datadog)๋ฅผ ์ ํํฉ๋๋ค.
- ์น์ฌ์ดํธ์ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง์ ๊ตฌํํฉ๋๋ค. ์ด๋ ์ข ์ข ์น์ฌ์ดํธ์ ์ถ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- KPI๋ฅผ ์๊ฐํํ๊ธฐ ์ํด ๋์๋ณด๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์๋ฆผ์ ๋ฐ๋๋ก ์ค์ ํฉ๋๋ค.
3. ์ฝ๋ ํ๋กํ์ผ๋ง
- ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ Node.js ํ๋กํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํฉ๋๋ค.
- ์ค์ํ ์ฌ์ฉ์ ์ฌ์ ๊ณผ ์์ฃผ ์ฌ์ฉ๋๋ ๊ตฌ์ฑ ์์์ ์ด์ ์ ๋ง์ถฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ํ๋กํ์ ๊ธฐ๋กํฉ๋๋ค.
- ํ๋กํ์ ๋ถ์ํ์ฌ ๋๋ฆฌ๊ฒ ์คํ๋๋ ํจ์, ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ ๊ธฐํ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํฉ๋๋ค.
4. ์ต์ ํ ๊ธฐ๋ฒ ๊ตฌํ
- ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ต์ํ ๋ฐ ์์ถ ๊ธฐ๋ฒ์ ์ ์ฉํฉ๋๋ค.
- Webpack์ด๋ Parcel๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ฒ๋ค๋งํฉ๋๋ค.
- ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ์ฝ๋ ๋ถํ ๋ฐ ์ง์ฐ ๋ก๋ฉ์ ๊ตฌํํฉ๋๋ค.
- DOM ์กฐ์ ๋ฐ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ฅผ ์ต์ ํํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์บ์ฑ ๋ฐ ์๋ฒ ์ฌ์ด๋ ์บ์ฑ์ ํ์ฉํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ๋๋ฐ์ด์ฑ ๋ฐ ์ค๋กํ๋ง์ ์ฌ์ฉํฉ๋๋ค.
- ์ฝ๋ ํ๋กํ์ผ๋ง ์ค์ ์๋ณ๋ ๋ชจ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ํด๊ฒฐํฉ๋๋ค.
5. ์ต์ ํ ํ ์คํธ ๋ฐ ๊ฒ์ฆ
- ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์คํํ์ฌ ์ต์ ํ์ ์ํฅ์ ์ธก์ ํฉ๋๋ค.
- ์ต์ ํ๊ฐ ์๋ก์ด ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ๊ท ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์คํธ๋ ์ค ์ํฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํด ๋ถํ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.
- ์ค์ ์๋๋ฆฌ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ธฐ ์ํด ๋ค์ํ ๊ธฐ๊ธฐ ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํฉ๋๋ค.
- ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ์์งํ๊ณ ๋ชจ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
6. ๋ฐ๋ณต ๋ฐ ๊ฐ์
- ์ ๊ธฐ์ ์ผ๋ก ์ฑ๋ฅ ์งํ์ ์ฝ๋ ํ๋กํ์ ๊ฒํ ํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ํ์์ ๋ฐ๋ผ ์กฐ์ ํฉ๋๋ค.
- ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํธ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ฒฝํ์ ๋ฏธ์น๋ ์ํฅ์ ๋ฐ๋ผ ์ต์ ํ ๋ ธ๋ ฅ์ ์ฐ์ ์์ํํฉ๋๋ค.
์ค์ฉ์ ์ธ ์์ ๋ฐ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ
๊ธ๋ก๋ฒ ๊ด์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ ์ต์ ํ์ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
์์ 1: ํด์ธ ์ฌ์ฉ์๋ฅผ ์ํ ์ด๋ฏธ์ง ๋ก๋ฉ ์ต์ ํ
๋ฌธ์ : ๊ณ ํด์๋ ์ ํ ์ด๋ฏธ์ง๊ฐ ์๋ ๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ์น์ฌ์ดํธ๊ฐ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ๋๋ฆฐ ๋ก๋ ์๊ฐ์ ๊ฒช๊ณ ์์ต๋๋ค.
ํด๊ฒฐ์ฑ :
- ๋ฐ์ํ ์ด๋ฏธ์ง ์ฌ์ฉ: `
` ํ๊ทธ์ `srcset` ๋ฐ `sizes` ์์ฑ์ ๊ตฌํํ์ฌ ์ฌ์ฉ์์ ํ๋ฉด ํฌ๊ธฐ ๋ฐ ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ํ ๊ธฐ๊ธฐ์ ์ฌ์ฉ์๋ ๋ ์์ ์ด๋ฏธ์ง ํ์ผ์ ๋ฐ์ ๋์ญํญ ์ฌ์ฉ๋์ ์ค์ผ ์ ์์ต๋๋ค.
- ์ง์ฐ ๋ก๋ฉ ๊ตฌํ: ์ด๋ฏธ์ง๊ฐ ๋ทฐํฌํธ ๋ด์ ๋ค์ด์ฌ ๋๊น์ง ๋ก๋๋ฅผ ์ง์ฐ์ํค๊ธฐ ์ํด ์ง์ฐ ๋ก๋ฉ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ๊ณผ ์น์ฌ์ดํธ์ ์ฒด๊ฐ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. lazysizes์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ตฌํ์ ๋จ์ํํ ์ ์์ต๋๋ค.
- ์ด๋ฏธ์ง ํ์ ์ต์ ํ: ๋ ๋์ ์์ถ๊ณผ ํ์ง์ ์ํด WebP์ ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํ์์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ์๋ WebP ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ๊ณ , ๊ตฌํ ๋ธ๋ผ์ฐ์ ์๋ ๋์ฒด ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค. ImageOptim ๋ฐ Squoosh์ ๊ฐ์ ๋๊ตฌ๋ ์ด๋ฏธ์ง ์ต์ ํ์ ๋์์ด ๋ ์ ์์ต๋๋ค.
- CDN ์ฌ์ฉ: ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)์ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ์ฌ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ์ํต๋๋ค. CDN์ ์ฌ์ฉ์์ ๋ ๊ฐ๊น์ด ์๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ์บ์ํ์ฌ ์ง์ฐ ์๊ฐ์ ์ค์ ๋๋ค. ์ฃผ์ CDN์๋ Cloudflare, Amazon CloudFront, Akamai๊ฐ ์์ต๋๋ค. ์ด๋ ์ธํฐ๋ท ์ธํ๋ผ๊ฐ ํฌ๊ฒ ๋ค๋ฅผ ์ ์๋ ์ํ๋ฆฌ์นด, ๋๋จ์์์, ๋จ๋ฏธ์ ๊ฐ์ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ํนํ ์ค์ํฉ๋๋ค.
์์ 2: ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ฝ๋ ๋ถํ
๋ฌธ์ : ์ ๋ฝ, ๋ถ๋ฏธ, ์์์ ์ ์ญ์ ํ์ด ์ฌ์ฉํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋๋ฆฐ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฒช๊ณ ์์ต๋๋ค.
ํด๊ฒฐ์ฑ :
- ์ฝ๋ ๋ถํ ๊ตฌํ: ์ฝ๋ ๋ถํ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋๋๋๋ค. ์ด๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ๋ ์ด๊ธฐ ๋ทฐ์ ํ์ํ ์ฝ๋๋ง ๋ก๋ํ ์ ์์ต๋๋ค.
- ๋์ ์ํฌํธ: ๋์ ์ํฌํธ(`import()`)๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ์ฝ๋ ์ฒญํฌ๋ฅผ ๋ก๋ํฉ๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ํน์ ๊ธฐ๋ฅ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ๋ก ์ด๋ํ ๋ ํด๋น ์น์ ์ ํ์ํ ์ฝ๋๋ง ๋ค์ด๋ก๋๋ฉ๋๋ค.
- ์ต์ ํ๋ ๋ฒ๋ค๋ง: Webpack์ด๋ Parcel๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๋ฅผ ํ์ฉํ์ฌ ์ต์ ํ๋ ๋ฒ๋ค์ ์์ฑํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ๊ตฌ์ฑํ์ฌ ๊ฒฝ๋ก, ๊ธฐ๋ฅ ๋๋ ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋ถํ ํ๋๋ก ํฉ๋๋ค.
- ๋ฏธ๋ฆฌ ๋ก๋ ๋ฐ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ: `preload` ๋ฐ `prefetch` ๋ฆฌ์์ค ํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ ์ ๋ก๋ํฉ๋๋ค. `preload`๋ ๋ธ๋ผ์ฐ์ ์ ๋ฆฌ์์ค๋ฅผ ์ฆ์ ๋ก๋ํ๋๋ก ์ง์ํ๊ณ , `prefetch`๋ ๋ฆฌ์์ค๊ฐ ๋ฏธ๋์ ํ์ํ ์ ์์์ ์์ํฉ๋๋ค.
์์ 3: ์๋ํํฐ ์๋ฐ์คํฌ๋ฆฝํธ ์ํฅ ์ต์ํ
๋ฌธ์ : ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ๊ฐ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ ์ฌ๋ฌ ์๋ํํฐ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: ์์ ๋ฏธ๋์ด ์์ ฏ, ๋ถ์ ๋๊ตฌ)์ ์์กดํ๊ณ ์์ต๋๋ค.
ํด๊ฒฐ์ฑ :
- ์๋ํํฐ ์คํฌ๋ฆฝํธ ๊ฐ์ฌ: ๋ชจ๋ ์๋ํํฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๊ฐ์ฌํ์ฌ ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์๋ณํฉ๋๋ค. ๊ฐ ์คํฌ๋ฆฝํธ์ ํ์์ฑ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ํ์์ ์ธ์ง ์ฌ๋ถ๋ฅผ ํ๊ฐํฉ๋๋ค.
- ์๋ํํฐ ์คํฌ๋ฆฝํธ ์ง์ฐ ๋ก๋ฉ: ์๋ํํฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ํ๊ฑฐ๋ ํ์ด์ง ๋ ๋๋ง์ด ๋๋ ๋๊น์ง ๋ก๋๋ฅผ ์ง์ฐ์ํต๋๋ค. ์ด๋ ์ด๋ฌํ ์คํฌ๋ฆฝํธ๊ฐ ์ฃผ์ ์ฝํ ์ธ ๋ ๋๋ง์ ์ฐจ๋จํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. `